草庐IT

jQuery EasyUI 扩展

全部标签

c# - 为什么不接受 IEnumerable(of T) 作为扩展方法接收器

在代码前完成问题:为什么是IEnumerablewhereT:ITest不被接受为期望thisIEnumerable的扩展方法的接收者?现在是代码:我有三种类型:publicinterfaceITest{}publicclassElement:ITest{}publicclassElementInfo:ITest{}还有两种扩展方法:publicstaticclassExtensions{publicstaticIEnumerableMethod(thisIEnumerablecollection)whereT:ITest{→returncollection.ToInfoObjects

c# - 将 Enumerable.ToDictionary 与扩展方法一起使用时为 "CLR detected an Invalid Program"

一位同事向我传递了一个有趣的代码示例,该示例在运行时因InvalidProgramException(“CLR检测到无效程序”)而崩溃。这个问题似乎发生在JIT时间,因为它编译得很好,但就在调用带有“违规”行的方法之前抛出异常-我猜是因为它正在被JIT。有问题的行是调用Enumerable.ToDictionary并将Func作为第二个参数传递。如果Func参数完全用lambda指定,它就可以工作;如果指定为方法组,如果失败。这两者一定是等价的吧?这让我(以及发现它的同事!)感到难过-这看起来确实像是一个JIT错误。[编辑:抱歉-我在代码示例中以错误的方式得到了通过和失败的情况-现在已

c# - 为什么我们在扩展方法中使用 "this"?

我想问一下为什么我们在扩展方法的参数前使用“this”关键字(C#语言)......................喜欢这个功能:publicstaticintToInt(thisstringnumber){returnInt32.Parse(number);}我知道我们必须使用它,但我不知道为什么。 最佳答案 因为这是您首先告诉编译器它是一个扩展方法的方式。否则它只是一个普通的静态方法。我猜他们选择了this,这样他们就不必想出一个新的关键字并可能破坏旧代码。 关于c#-为什么我们在扩

c# - 扩展方法与助手类

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:ExtensionMethodsvsStaticUtilityClass我正在构建通用函数的API,这些函数基于.NET中的对象执行操作。例如;我创建了一个函数来检查字符串以查看它是否是电子邮件地址。我可以:staticboolIsEmailAddress(stringtext){returnIsMail(text);}或者我可以创建一个像这样使用的扩展方法:stringtext="HelloWorld@Email.com";if(text.IsEmailAddress()){}哪个更合适,或者您认为既然这是

c# - 如果扩展方法与密封类中的方法具有相同的签名,调用优先级是多少?

我正在阅读C#3.0中的扩展方法。我正在阅读的文本暗示,与被扩展类中的方法具有相同签名的扩展方法将在执行顺序中排在第二位——也就是说,密封类中的方法被调用。如果是这种情况,您如何扩展密封类? 最佳答案 事实上,actual方法优先于扩展方法。并且为了清楚起见-“执行顺序”表明两者都可能被调用;只有原始方法会被调用。也许选择另一个名字/签名;如果这是你的意图,你不能使用扩展方法来猴子补丁。如果有一些基类/接口(interface)(类型实现的)没有有这个方法,你也许可以把它投到那里......?

C# 不明确的扩展方法

LinqKit有一个扩展方法ForEach用于IEnumerable,它与System.Collections.Generic.IEnumerable冲突。Error4Thecallisambiguousbetweenthefollowingmethodsorproperties:'LinqKit.Extensions.ForEach(System.Collections.Generic.IEnumerable,System.Action)'and'System.Linq.EnumerableExtensionMethods.ForEach(System.Collections.Gen

c# - MVC 4 和 Razor 的扩展方法

我已经创建了一个扩展方法并将其命名空间包含在我的web.config文件中。扩展方法工作正常,测试代码可以正常访问。问题是,我仍然收到与未找到命名空间相关的错误。我收到的ASP.NET错误消息是:CS1061:'System.Uri'doesnotcontainadefinitionfor'IsCurrentUrl'andnoextensionmethod'IsCurrentUrl'acceptingafirstargumentoftype'System.Uri'couldbefound(areyoumissingausingdirectiveoranassemblyreference

c# - 使用扩展方法来类型转换一个坏主意吗?

我最近开始使用WPF,我注意到您必须进行大量转换(尤其是事件转换)。这是一个审美问题,但我想知道如果我使用扩展方法进行转换而不是使用普通转换会有多糟糕。publicstaticTCast(thisobjectobj){return(T)obj;}这意味着我可以防止一些嵌套的括号,并更改:Console.WriteLine(((DataGridCell)e.OriginalSource).ActualHeight);到:Console.WriteLine(e.OriginalSource.Cast().ActualHeight);是否有任何我可能忽略的明显缺点?人们在代码中遇到这种情况会

c# - 使用 Shell32 获取文件扩展属性时出现异常

我正在尝试使用Shell32在C#中获取扩展文件属性。我的代码如下。varfile=FileUpload1.PostedFile;ListarrHeaders=newList();Shellshell=newShellClass();//ExceptionisthrownatnextlineFolderrFolder=shell.NameSpace(Path.GetDirectoryName(file.FileName));FolderItemrFiles=rFolder.ParseName(Path.GetFileName(file.FileName));for(inti=0;i我收

c# - 现有的类似于Parallel.For的LINQ扩展方法?

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:LINQequivalentofforeachforIEnumerableienumerable的linq扩展方法非常方便……但如果您只想对枚举中的每个项目应用一些计算而不返回任何内容,那么就没那么有用了。所以我想知道也许我只是错过了正确的方法,或者它是否真的不存在,因为如果它可用的话我宁愿使用内置版本......但我还没有找到一个:-)我可以发誓某处有一个.ForEach方法,但我还没有找到它。与此同时,我确实编写了自己的版本以防它对其他人有用:usingSystem.Collections;usingSys